mongodump, mongorestore
MongoDB 백업 및 복원 가이드 (mongodump & mongorestore)
MongoDB에서 데이터를 백업하고 복원하는 방법으로 mongodump와 mongorestore 도구를 사용할 수 있습니다. 이 문서는 mongodump 및 mongorestore의 사용법과 옵션을 설명합니다.
1. mongodump를 이용한 백업
mongodump는 MongoDB 데이터를 BSON 형식으로 백업하는 도구입니다. 기본적으로 컬렉션을 BSON 형식의 파일로 저장하며, 이후 복원할 수 있도록 지원합니다.
1.1 기본 사용법
mongodump --out /백업경로
위 명령어는 MongoDB의 기본 인스턴스(localhost:27017)에서 데이터를 덤프하여 지정된 /백업경로에 저장합니다.
1.2 특정 데이터베이스 백업
mongodump --db mydatabase --out /backup/mongodb
--db mydatabase:mydatabase데이터베이스만 백업합니다.--out /backup/mongodb: 백업 파일을/backup/mongodb디렉터리에 저장합니다.
1.3 특정 컬렉션 백업
mongodump --db mydatabase --collection mycollection --out /backup/mongodb
--collection mycollection:mydatabase의 특정 컬렉션(mycollection)만 백업합니다.
1.4 원격 서버에서 백업
mongodump --host example.com --port 27018 --db mydatabase --username user --password pass --out /backup/mongodb
--host example.com --port 27018: 원격 서버(example.com:27018)의 MongoDB에 연결합니다.--username user --password pass: 인증이 필요한 경우 사용자 이름과 비밀번호를 입력합니다.
1.5 압축하여 백업하기
mongodump --db mydatabase --archive=/backup/mongodb.gz --gzip
--archive=/backup/mongodb.gz: 백업 파일을 단일.gz압축 파일로 저장합니다.--gzip: 백업 데이터를 압축하여 저장합니다.
Example
mongodump --uri "mongodb+srv://<username>:<password>@<host>" --db prod --archive=dump_prod_2025-06-18.gz --gzip
2. mongorestore를 이용한 복원
mongorestore는 mongodump로 생성된 BSON 데이터를 복원하는 도구입니다.
2.1 기본 사용법
mongorestore /백업경로
/백업경로내의 데이터베이스 및 컬렉션을 기본 MongoDB 인스턴스(localhost:27017)에 복원합니다.
2.2 특정 데이터베이스 복원
mongorestore --db newdatabase /backup/mongodb/mydatabase
- 기존 데이터베이스 백업을
newdatabase로 복원합니다.
2.3 특정 컬렉션 복원
mongorestore --db mydatabase --collection mycollection /backup/mongodb/mydatabase/mycollection.bson
- 특정 컬렉션(
mycollection)만 복원합니다.
2.4 원격 서버에 복원
mongorestore --host example.com --port 27018 --db mydatabase --username user --password pass /backup/mongodb/mydatabase
- 원격 서버(
example.com:27018)에 데이터를 복원합니다.
2.5 압축된 백업 파일 복원
mongorestore --gzip --archive=/backup/mongodb.gz
--gzip: gzip으로 압축된 백업 파일을 복원합니다.
2.6 기존 데이터 덮어쓰기 (주의!)
mongorestore --drop --db mydatabase /backup/mongodb/mydatabase
--drop옵션을 사용하면 기존 데이터를 삭제하고 복원합니다.- 기존 데이터와 중복되는 경우 문제가 발생할 수 있으므로 주의해야 합니다.
2.7 컬렉션 이름 변경하여 복원 (--nsFrom, --nsTo)
mongorestore --nsFrom=mydatabase.old_collection --nsTo=mydatabase.new_collection /backup/mongodb
mydatabase.old_collection을mydatabase.new_collection으로 이름을 변경하여 복원합니다.
Example
mongorestore --uri "mongodb+srv://<username>:<password>@<host>" --nsFrom "prod.*" --nsTo "dump_prod_2025-06-25.*" --archive=dump_prod_2025-06-25.gz --gzip
3. 주의사항 및 베스트 프랙티스
- 백업 주기 설정: 중요한 데이터는 주기적으로 백업하여 데이터 손실을 방지해야 합니다.
- 백업 데이터 보관: 백업 파일을 안전한 장소(예: 클라우드 스토리지, 외부 스토리지)에 보관해야 합니다.
- 테스트 복원: 백업 데이터가 정상적으로 복원되는지 정기적으로 확인해야 합니다.
--drop옵션 주의: 기존 데이터를 삭제하는--drop옵션을 사용할 때는 신중해야 합니다.- 보안 고려: 원격 서버에서 백업 및 복원 시 보안 설정(예: 인증, SSH 터널링 등)을 고려해야 합니다.
이 문서를 참고하여 MongoDB 데이터를 효과적으로 백업하고 복원하세요!